package app.com.itcast.biyesheji.Adapter;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.squareup.picasso.Picasso;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.List;

import app.com.itcast.biyesheji.Bean.CarBean;
import app.com.itcast.biyesheji.Bean.UserBean;
import app.com.itcast.biyesheji.R;

public class CarAdapter extends BaseAdapter {
    private List list;
    private Context context;

    public CarAdapter(List list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = LayoutInflater.from(context).inflate(R.layout.car_list, parent, false);
        //这里写listview里面item的控件，findViewById前面要加上(view.)。
        ImageView icon = convertView.findViewById(R.id.Iv_image);
        TextView tv1 = convertView.findViewById(R.id.tv_car_name);
        TextView tv2 = convertView.findViewById(R.id.tv_price);
        Button delete = convertView.findViewById(R.id.btn_car_dl);
        //把DataBean的数据从List里面取出来。
        CarBean.ListBean listBean = (CarBean.ListBean) list.get(position);
        // 获取当前项的数据中的某个属性的值，将其设置为文本框控件的属性，完成数据的呈现。
        tv1.setText(listBean.getName());
        tv2.setText(listBean.getPrice()+"");
        // 如果是图片。
        Picasso.with(context).load(context.getResources().getString(R.string.api_ip)+listBean.getImage()).into(icon);
        delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

//                    Intent intent = getIntent();
//                    carid = intent.getIntExtra("userid",1);
                Log.e("TAG", "onClick:位置 "+position);

                Log.e("TAG", "onClick: "+listBean.getCarid() );
                    RequestQueue requestQueue = Volley.newRequestQueue(context);
                    String url =context.getResources().getString(R.string.api_ip) + "/car/momo/delete";
                    JSONObject jsonObject = new JSONObject();
                    try {
                        jsonObject.put("carid", listBean.getCarid());
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, jsonObject, new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject jsonObject) {
                            Log.e("TAG", "onResponse: " + jsonObject);
                            /*处理结果数据*/
                            // 1）讲json对象转换为java对象（需要使用GsonFormat插件根据返回数据，创建结果处理类MyBean）
                            Gson gson = new Gson();
                            UserBean myBean = gson.fromJson(jsonObject.toString(), UserBean.class);
                            if(myBean.isSuccess()){
                                Toast.makeText(context, "删除商品", Toast.LENGTH_SHORT).show();
                                list.remove(position);
                                notifyDataSetChanged();
                            }else{
                                Toast.makeText(context, "失败", Toast.LENGTH_SHORT).show();
                            }
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError volleyError) {
                            Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show();
                        }
                    });
                    requestQueue.add(jsonObjectRequest);

            }
        });
        notifyDataSetChanged();
        return convertView;
        // 返回填充了内容的项视图对象。
    }

}
